In today's digital world, a large amount of data is generated, stored and transmitted over communication networks everyday. The data can include confidential information, such as credit card numbers, contact numbers, financial details, personal information, business information, and technical information. Therefore, various methods of data security are used to reduce the possibility of unauthorized data access and usage. Encryption or cryptography is one such method that facilitates in securing the data stored in a system or data in transit. The use of encryption enables conversion of data, such as plain text, in a form, called a ciphertext, which cannot be easily read by an unauthorized user. When required, the ciphertext can be converted to the original plain text by decryption.
Typically, encryption is accomplished through use of a cryptographic algorithm, which is essentially a mathematical function. Commonly used cryptographic algorithms, such as symmetric and asymmetric algorithms require knowledge of variable information called a key to decrypt the ciphertext. These keys are either communicated to the intended recipient through a separate channel or already present with the intended user as private key. The bearer of the private key would be able to decrypt the encrypted data. The bearer needs to take care while handling the private key as there may be attempts to hack the private key thus causing security threat to the encrypted data.